package com.youlu.campus.entity.timetable;

import com.youlu.campus.base.base.EntityBase;
import lombok.Data;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;

import java.time.LocalDate;
import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * @author : [dengbo]
 * @className : Timetable
 * @description : [用户课程表]
 * @createTime : [2023/4/16 17:46]
 */
@Data
@Document(collection = "user_timetable")
@CompoundIndexes({
        @CompoundIndex(name = "u_a_g_s_y", def = "{'userId':-1,'activityId':-1,'grade':-1,'semester':-1,'yearRealWeeks':-1}")
})
public class UserTimetable extends EntityBase {
    /**
     * 活动id
     */
    private String activityId;
    /**
     * 用户id
     */
    private String userId;
    /**
     * 开学日期
     */
    private Date startDate;
    /**
     * 结束日期
     */
    private Date endDate;
    /**
     * 学期年份
     */
    private String year;
    /**
     * 包含年份
     */
    private Set<String> years;
    /**
     * 学年
     */
    private String grade;
    /**
     * 学期 默认 0
     */
    private String semester;
    /**
     * 课程表名称
     */
    private String courseName;
    /**
     * 选择周数
     */
    private List<Integer> choiceWeeks;

    /**
     * 真正周数按照一年 1月1日为第一周
     */
    private List<Integer> realWeeks;
    /**
     * 年份周数
     */
    private List<String> yearRealWeeks;
    /**
     *  课程周 week 1周一 2周二 3 周三4 周四5周五 6周六 7周天
     */
    private Integer courseWeek;
    /**
     * 课程节数
     */
    private List<Integer> courseNum;
    /**
     * 课程地点
     */
    private String courseAddress;
    /**
     * 课程老师
     */
    private String courseTeacher;
    /**
     *  颜色类型 1-7中类型
     */
    private String colorType;
}
